Week 15 of 16

Build: Automate a Real Workflow

Use the DVP CLI to generate prompts for a real project in one command.

Day 75 60 minutes Build

Day 75 of 80

From Learning to Working

Today you use the tool you built on something real. Not a contrived exercise — a real project, real shots, real output you'd actually use.

When a tool you built solves a problem you actually have, that's the moment it clicks. Python stops being "something I'm learning" and becomes "something I use."

Step 1: Create a Shots File for a Real Project

Think of a project you're working on or planning. Film project, commercial, personal project — anything with shots. Create project_shots.json:

project_shots.json — example (replace with your real project) JSON
[
  "Wide establishing shot, golf course at sunrise, mist rising from fairways",
  "Close-up hands gripping club, shallow depth of field, morning dew on gloves",
  "Slow motion golf swing follow-through, backlit by golden hour sun",
  "Aerial drone pull-back revealing the full 18-hole course and surrounding landscape",
  "Crowd reaction in slow motion, bokeh stadium background, confetti falling"
]

Be specific in your shot descriptions. The more detail you give — lighting, camera movement, mood — the better the generated prompts will be. Think of it as a brief to yourself about each shot.

Step 2: Run the Full Batch

# Generate for all platforms, save to database, export to JSON
python dvp.py batch project_shots.json --save --output project_prompts.json

# See how many prompts you now have
python dvp.py stats

# Look at just the Kling ones
python dvp.py list --platform Kling

# Search for a specific concept
python dvp.py search "slow motion"

You just generated 15 prompts (5 shots × 3 platforms) in roughly the time it would have taken to generate one manually.

Step 3: Review and Refine

Open project_prompts.json. Read through the prompts. For each shot:

The Real Workflow

This is the intended workflow for real production use:

  1. Write your shot list in shots.json
  2. Run python dvp.py batch shots.json --save --output output.json
  3. Review the output, pick the best prompts per shot
  4. Refine the shot descriptions for anything that didn't land
  5. Re-run on the refined descriptions

The loop is fast because generation is parallel. What used to take 30 minutes of copy-pasting into UIs takes 30 seconds.

Stretch: Make It Even Simpler

If you want to run this as dvp batch shots.json instead of python dvp.py batch shots.json, you can make the script executable. But that's polish — the important thing is that it works.

For now, you can create a simple shell script run_batch.sh if you want to save the full command for reuse:

# run_batch.sh
python dvp.py batch "$1" --save --output "${1%.json}_prompts.json"
python dvp.py stats

Then bash run_batch.sh my_shots.json runs the whole thing and shows stats.

Week 15 Complete

You built a proper command-line tool. It has commands, options, help text, type validation, confirmation prompts, and async generation. It's the kind of tool you'd publish on GitHub and other people would use.

You didn't just learn CLI patterns — you applied them to a real problem you actually have.

End of Week Checklist

Up Next: Week 16 — The Capstone

Week 16 is the final week. You pick a project, plan it, build it from scratch, write tests, and reflect on 16 weeks of progress. No hand-holding. No templates. Just you and Python.